Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / core / barcode / src / test / kotlin / org / meshtastic / core / barcode / SingleScanResultGateTest.kt

Displaying Raw • Download

core/barcode/src/test/kotlin/org/meshtastic/core/barcode/SingleScanResultGateTest.kt 65a1f5ce4d0e4b8eafcd0bbfccafd41dc6ee888a (65a1f5ce) Text, 3.51 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.barcode

Tff7b72import T7ee787org.junit.Assert.assertEquals
Tff7b72import T7ee787org.junit.Assert.assertFalse
Tff7b72import T7ee787org.junit.Assert.assertTrue
Tff7b72import T7ee787org.junit.Test
Tff7b72import T7ee787java.util.concurrent.CountDownLatch
Tff7b72import T7ee787java.util.concurrent.Executors
Tff7b72import T7ee787java.util.concurrent.TimeUnit
Tff7b72import T7ee787java.util.concurrent.atomic.AtomicInteger

Tff7b72class T56d364SingleScanResultGateTest Tb4b4b4{
Tf0883e@Test
Tff7b72fun Td2a8fffirst_result_is_deliveredTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3gate Tff7b72= Te6edf3SingleScanResultGateTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3results Tff7b72= Te6edf3mutableListOfTff7b72<Tffa657String?Tff7b72>Tb4b4b4(Tb4b4b4)

Tff7b72val Te6edf3delivered Tff7b72= Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6ffqrTa5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3resultsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}

Te6edf3assertTrueTb4b4b4(Te6edf3deliveredTb4b4b4)
Te6edf3assertEqualsTb4b4b4(Te6edf3listOfTb4b4b4(Ta5d6ff"Ta5d6ffqrTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3resultsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffduplicate_results_are_ignoredTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3gate Tff7b72= Te6edf3SingleScanResultGateTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3results Tff7b72= Te6edf3mutableListOfTff7b72<Tffa657String?Tff7b72>Tb4b4b4(Tb4b4b4)

Te6edf3assertTrueTb4b4b4(Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6fffirstTa5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3resultsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6ffsecondTa5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3resultsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(Te6edf3listOfTb4b4b4(Ta5d6ff"Ta5d6fffirstTa5d6ff"Tb4b4b4)Tb4b4b4, Te6edf3resultsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffdismiss_blocks_late_scan_resultTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3gate Tff7b72= Te6edf3SingleScanResultGateTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3results Tff7b72= Te6edf3mutableListOfTff7b72<Tffa657String?Tff7b72>Tb4b4b4(Tb4b4b4)

Te6edf3assertTrueTb4b4b4(Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Tff7b72nullTb4b4b4) Tb4b4b4{ Te6edf3resultsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4)
Te6edf3assertFalseTb4b4b4(Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6fflateTa5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3resultsTb4b4b4.Te6edf3addTb4b4b4(Tffa657itTb4b4b4) Tb4b4b4}Tb4b4b4)

Te6edf3assertEqualsTb4b4b4(Te6edf3listOfTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4, Te6edf3resultsTb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffthrowing_callback_consumes_gateTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3gate Tff7b72= Te6edf3SingleScanResultGateTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3secondCallbackCount Tff7b72= Te6edf3AtomicIntegerTb4b4b4(T79c0ff0Tb4b4b4)

Tff7b72try Tb4b4b4{
Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6fffirstTa5d6ff"Tb4b4b4) Tb4b4b4{ Tff7b72throw Te6edf3IllegalStateExceptionTb4b4b4(Ta5d6ff"Ta5d6ffboomTa5d6ff"Tb4b4b4) Tb4b4b4}
Tff7b72throw Te6edf3AssertionErrorTb4b4b4(Ta5d6ff"Ta5d6ffExpected callback failureTa5d6ff"Tb4b4b4)
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3excTb4b4b4: Te6edf3IllegalStateExceptionTb4b4b4) Tb4b4b4{
Te6edf3assertEqualsTb4b4b4(Ta5d6ff"Ta5d6ffboomTa5d6ff"Tb4b4b4, Te6edf3excTb4b4b4.Te6edf3messageTb4b4b4)
Tb4b4b4}

Te6edf3assertFalseTb4b4b4(Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6ffsecondTa5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3secondCallbackCountTb4b4b4.Te6edf3incrementAndGetTb4b4b4(Tb4b4b4) Tb4b4b4}Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3secondCallbackCountTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4}

Tf0883e@Test
Tff7b72fun Td2a8ffconcurrent_results_deliver_onceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3gate Tff7b72= Te6edf3SingleScanResultGateTb4b4b4(Tb4b4b4)
Tff7b72val Te6edf3callbackCount Tff7b72= Te6edf3AtomicIntegerTb4b4b4(T79c0ff0Tb4b4b4)
Tff7b72val Te6edf3threadCount Tff7b72= T79c0ff6T79c0ff4
Tff7b72val Te6edf3startGate Tff7b72= Te6edf3CountDownLatchTb4b4b4(T79c0ff1Tb4b4b4)
Tff7b72val Te6edf3doneGate Tff7b72= Te6edf3CountDownLatchTb4b4b4(Te6edf3threadCountTb4b4b4)
Tff7b72val Te6edf3executor Tff7b72= Te6edf3ExecutorsTb4b4b4.Te6edf3newFixedThreadPoolTb4b4b4(Te6edf3threadCountTb4b4b4)

Tff7b72try Tb4b4b4{
Te6edf3repeatTb4b4b4(Te6edf3threadCountTb4b4b4) Tb4b4b4{
Te6edf3executorTb4b4b4.Te6edf3execute Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3startGateTb4b4b4.Te6edf3awaitTb4b4b4(Tb4b4b4)
Te6edf3gateTb4b4b4.Te6edf3tryDeliverTb4b4b4(Ta5d6ff"Ta5d6ffqrTa5d6ff"Tb4b4b4) Tb4b4b4{ Te6edf3callbackCountTb4b4b4.Te6edf3incrementAndGetTb4b4b4(Tb4b4b4) Tb4b4b4}
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3doneGateTb4b4b4.Te6edf3countDownTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Te6edf3startGateTb4b4b4.Te6edf3countDownTb4b4b4(Tb4b4b4)

Te6edf3assertTrueTb4b4b4(Ta5d6ff"Ta5d6ffTimed out waiting for concurrent deliveriesTa5d6ff"Tb4b4b4, Te6edf3doneGateTb4b4b4.Te6edf3awaitTb4b4b4(T79c0ff5Tb4b4b4, Te6edf3TimeUnitTb4b4b4.Te6edf3SECONDSTb4b4b4)Tb4b4b4)
Te6edf3assertEqualsTb4b4b4(T79c0ff1Tb4b4b4, Te6edf3callbackCountTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4)
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3executorTb4b4b4.Te6edf3shutdownNowTb4b4b4(Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.1s